/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.util;

import com.entidades.Campanha;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Ricardo
 */


public class ExecutorSchedule {

    private static ExecutorSchedule instance;
    private List<Campanha> listaExecucao; //Trocar para queue politica de fila para execuçao

    private ExecutorSchedule() {
        listaExecucao = new ArrayList<Campanha>();
        recuperaCampanhasAgendadas();

    }

     public static ExecutorSchedule getInstance(){
        if(instance == null){
            instance = new ExecutorSchedule();
        }

        return instance;
    }

    private void recuperaCampanhasAgendadas() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    public void add(Campanha c){
        //troca status para agendada
        //adiciona na fila
    }

    public synchronized Campanha getProximaExecucao(){
        //verifica se vazia e lança exceçao.
        //pega a primeira da fila.
        return null;
    }
   

  



    @Override
    protected void finalize() throws Throwable {
       instance = null;
    }






}
